前情提要一下,今天想來跟大家分享Nginx常會看到的設定資料,卻不知道詳細是什麼意思~
proxy_pass:反向代理到同一台主機的哪個Port
Access-Control-Allow-Headers:設定接受哪些請求的 Header
Access-Control-Allow-Origin: 設定從哪個源頭允許來獲取資料,例如*就是哪有都允許,www.test.com.tw 就是只允許從www.test.com.tw 來才能request資料
Access-Control-Allow-Methods: 設定哪些methods允許來獲取資料
範例設定資料如下,
location /api {
proxy_pass http://127.0.0.1:5000;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
}
是不是常常看見設定有這幾行,卻不曉得是幹嘛用的,這邊就先解釋一下~
if ($request_method = 'OPTIONS') {
return 204;
}
簡單來說,就是瀏覽器必須首先使用OPTIONS 方法發起一個預檢請求(preflight request),從而獲知服務端是否允許該跨域請求(CORS),這是有會回傳是否需要帶身份憑證等資訊(Cookies, HTTP認證的相關資訊),服務端確認後才會實際發起HTTP請求~
Cache-Control: max-age=<秒數>
Cache-Control: no-store
Cache-Control: no-cache
application/json
=> Jsonmultipart/form-data
=> 使用POST傳遞表格(Form)資料參考資料: